#!/bin/bash

# 获取当前脚本所在目录（项目根目录）
PROJECT_DIR=$(dirname "$(realpath "$0")")

# 安装系统依赖（portaudio，pyaudio的前置库）
echo "检测系统发行版并安装portaudio依赖..."
if [ -f /etc/os-release ]; then
    . /etc/os-release
    case $ID in
        debian|ubuntu)
            sudo apt-get update && sudo apt-get install -y portaudio19-dev
            ;;
        centos|fedora)
            sudo yum install -y portaudio-devel || sudo dnf install -y portaudio-devel
            ;;
        *)
            echo "警告：未识别的发行版，无法自动安装portaudio依赖。"
            echo "请手动安装："
            echo "  Debian/Ubuntu: sudo apt-get install portaudio19-dev"
            echo "  CentOS/Fedora: sudo yum install portaudio-devel 或 sudo dnf install portaudio-devel"
            ;;
    esac
else
    echo "警告：无法检测系统发行版，无法自动安装portaudio依赖。"
    echo "请手动安装portaudio开发库（如portaudio19-dev或portaudio-devel）。"
fi

# 安装Python依赖（如果存在 requirements.txt）
if [ -f "${PROJECT_DIR}/requirements.txt" ]; then
    echo "正在安装Python依赖..."
    pip install -r "${PROJECT_DIR}/requirements.txt"
else
    echo "警告：未找到 requirements.txt 文件，跳过依赖安装。"
    echo "请手动创建 requirements.txt 并包含以下内容（tkinter/threading 是标准库无需安装）："
    echo "pyaudio"
    echo "numpy"
    echo "librosa"
    echo "soundfile"
    echo "scipy"
fi

# 运行 main.py
if [ -f "${PROJECT_DIR}/main.py" ]; then
    echo "正在运行 main.py..."
    python3 "${PROJECT_DIR}/main.py"  # Linux 建议显式使用 python3（避免默认 python 指向 python2）
else
    echo "错误：未在项目目录中找到 main.py 文件！"
    exit 1
fi